﻿using SIIE_ERP.Codigo;
using SIIE_ERP.View;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace Elysium.Demo.Inventarios.Catalogos
{
    /// <summary>
    /// Interaction logic for Listas_Precios_Detalle.xaml
    /// </summary>
    public partial class Listas_Precios_Detalle : UserControl, IPropiedadesNavegacion
    {
         private UsuarioActivo _sesion;
        private Int32 Id;
        private Int32 id_Articulo;
        private Int32 Id_Descuento;
        private Int32 Id_Lista_Precio;
        ////////////////////////////////////////////////////////////////////////////
        //  PROPIEDADES DE NAVEGACION
        public string Texto { get { return _texto; } }
        public TabControl TabControlPadre { get { return _tabControlPadre; } }
        public TabItem TabItemPadre { get { return _tabItemPadre; } }

        private string _texto;
        string mensage;
        private TabControl _tabControlPadre;
        private TabItem _tabItemPadre;

        public void setParametros(string Texto, ref TabControl tabControl, ref TabItem tabItem)
        {
            this._texto = Texto; this._tabControlPadre = tabControl; this._tabItemPadre = tabItem;
        }

        private void ButtonRegresar_Click(object sender, RoutedEventArgs e)
        {
            _tabControlPadre.Items.Remove(_tabItemPadre);

            SIIE_ERP.View.NavegacionUI.AbrirPestanaEditar(this.Id.ToString(),
                                                    typeof(Inventarios.Catalogos.Listas_Precios_Edita),
                                                 ref _tabControlPadre, _sesion);
        }
        // FIN DE PROPIEDADES DE NAVEGACION
        ///////////////////////////////////////////////////////////////////////////

        public Listas_Precios_Detalle(UsuarioActivo usuario, string Id)
        {
            InitializeComponent();
            this._sesion = usuario;
            string[] param = Id.Split('|');
            this.Id =Convert.ToInt32( param[1]);
            this.id_Articulo = Convert.ToInt32(param[0]);
        
          
            cargaDatos();
        

        }
       

        private void Button_Cancelar_Click(object sender, RoutedEventArgs e)
        {
            _tabControlPadre.Items.Remove(_tabItemPadre);

            SIIE_ERP.View.NavegacionUI.AbrirPestanaEditar(this.Id.ToString(),
                                                    typeof(Inventarios.Catalogos.Listas_Precios_Edita),
                                                 ref _tabControlPadre, _sesion);
        }

        private void Button_Guardar_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                var codigo = new SIIE_ERP.Codigo.Inventarios.Catalogos.Listas_Precios();
                mensage = codigo.validaDatosDetalle(TextBox_CantidadMinima.Text, TextBox_Descuento.Text);

                if (mensage != "")
                {
                    MessageBox.Show(mensage);
                    return;
                }
                MessageBox.Show(codigo.Insert_Lista_Precios_Articulo_Descuento(_sesion.RFC, _sesion.UserName, this.Id, this.id_Articulo, TextBox_CantidadMinima.Text, this.Id_Lista_Precio, TextBox_Descuento.Text));

                cargaDatos();
            }catch(Exception)
            {
            
            
            }
        }

     
        private void AbrirLinkDescuento_Click(object sender, RoutedEventArgs e)
        {
            

        }
        private void ArticulosDataGrid_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
              try {
            
                DataGrid dataGrid = sender as DataGrid;
               if (e.AddedItems != null && e.AddedItems.Count > 0)
               {
                   // find row for the first selected item
                   DataGridRow row = (DataGridRow)dataGrid.ItemContainerGenerator.ContainerFromItem(e.AddedItems[0]);
                   if (row != null)
                    {
                        Id_Descuento = Convert.ToInt32(((Elysium.Demo.Inventarios.Catalogos.Listas_Precios_Detalle.CLista)(row.Item)).Id_Lista_Precios_Articulo_Descuento);
          
                    }
                }

            
            }
            catch (Exception)
            {

                return;
            }

        }
        private void cargaDatos()
        {
            try
            {

            var dbArticulo = new SIIE_ERP.BaseDatos.Inventarios.Catalogos.dbo_Cat_Articulo(_sesion.RFC, _sesion.UserName).Get_Articulo_Por_Id(this.id_Articulo).Rows[0];
            TextBox_Articulo.Text = dbArticulo["Nombre"].ToString();
            var db = new SIIE_ERP.BaseDatos.Inventarios.Catalogos.dbo_Cat_Listas_Precios(_sesion.RFC, _sesion.UserName);
           var IdListaPrecio = db.Get_Lista_Precios_Articulo_By_Id(this.Id, this.id_Articulo).Rows[0];
           Id_Lista_Precio = Convert.ToInt32(IdListaPrecio["Id_Lista_precios_Articulo"].ToString());
           var descuentos = db.Get_lista_Precios_Articulo_Descuento(this.Id,this.id_Articulo).Rows;
            DescuentoDataGrid.Items.Clear();
            foreach (DataRow x in descuentos)
            {
               DescuentoDataGrid.Items.Add(new CLista(
                 x["Id_Lista_Precios_Articulo_Descuento"].ToString(),
                                 x["Cantidad_Minima"].ToString(),
                                 x["Descuento"].ToString()
                                ));
            }

            }
            catch (Exception)
            {

            }
        }
        class CLista
        {
            public string Id_Lista_Precios_Articulo_Descuento { get; set; }
            public string Cantidad_Minima { get; set; }
            public string Descuento { get; set; }
            public CLista(
                string Id_Lista_Precios_Articulo_Descuento,
                    string Cantidad_Minima,
                   string Descuento
                            )
            {
                this.Id_Lista_Precios_Articulo_Descuento = Id_Lista_Precios_Articulo_Descuento;
                this.Cantidad_Minima = Cantidad_Minima;
                this.Descuento = Descuento;
            }
        }
        private void btnDelete_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                var db = new SIIE_ERP.BaseDatos.Inventarios.Catalogos.dbo_Cat_Listas_Precios(_sesion.RFC, _sesion.UserName);
                if (MessageBox.Show("¿Esta seguro de eliminar este descuento?", "Eliminar", MessageBoxButton.YesNo) == MessageBoxResult.Yes)
                {
                    if (db.Delete_Lista_Precios_Articulo_Descuento_Por_Id(this.Id_Descuento, this.Id_Lista_Precio).Id == 1)
                    {
                        cargaDatos();
                    }
                    else
                    {
                        MessageBox.Show("El descuento tiene relaciones y por eso no es posible borrarla.");
                    }
                }
            }
            
            catch (Exception)
            {
                
             
            }
        }
    }
}
